package pox.mantianx.utils;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author starrysky
 * @title: JsonUtils
 * @projectName springMvc_Parent
 * @description: JSON工具类抽取
 * @date 2021/2/515:19
 */
public class JsonUtils {

    private JsonUtils() {

    }

    private static final ObjectMapper MAPPER = new ObjectMapper();

    /**
     * 传入一个任意的类型返回一个String类型的字符序列
     * @param object
     * @return
     * @throws JsonProcessingException
     */
    public static String toAllAsString(Object object)  {
        try {
            return MAPPER.writeValueAsString(object);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 传入一个时间对象以及一个格式返回一个String类型的时间
     * @param date
     * @param format
     * @return
     */
    public static String toDateFormat(Date date , String format) {

        //不使用时间戳的方式
        MAPPER.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
        MAPPER.setDateFormat(simpleDateFormat);
        try {
            return MAPPER.writeValueAsString(date);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return null;
    }
}
